#include <iostream>
#include <string>
using namespace std;
class Solution {
public:
string addStrings(string& num1, string& num2) {
       int end1=num1.size()-1;
       int end2=num2.size()-1;
       string retstr;
       int next=0;
       while(end1>=0||end2>=0)
       {
            int val1=0;
            int val2=0;
            int tmp=0;
            if(end1>=0)
                val1=num1[end1]-'0';
            if(end2>=0)
                val2=num2[end2]-'0';
            int ret=val1+val2+next;
            if(ret>9)
            {
                next=1;
                ret-=10;
            }
            else
            {
                next=0;
            }
            retstr+=(ret+'0');
            end1--;
            end2--;
       }
       if(next==1)
            retstr+='1';
        reverse(retstr.begin(),retstr.end());
       return retstr;
    }  
    //方法一
    string multiply(string num1, string num2) {
        if(num1=="0"||num2=="0")
            return "0";
        int end1=num1.size()-1;
        string retstr;
        string zero;
        while(end1>=0)
        {
            string tmp;
            int val1=num1[end1]-'0';
            for(int i=0;i<val1;i++)
            {
                tmp=addStrings(tmp,num2);
            }
            tmp+=zero;
            zero+='0';
            retstr=addStrings(retstr,tmp);
            end1--;
        }
        return retstr;
    }
    //方法二
   // string multiply(string num1, string num2) {
      //  if(num1=="0"||num2=="0")
         //   return "0";
        //string retstr("0");
        //string zero;
        //for(int i = num1.size()-1 ; i>=0;i--)
       // {
           // string tmp;
            //int n=1;
            //while((num1[i]-'0')>=n)
           //{
            //   tmp = addStrings(tmp,num2);
            //   n++;
           //}
           //tmp+=zero;
            //zero+="0";
            //retstr = addStrings(retstr,tmp);
        //}
        //return retstr;
    //}
};